Recently, demands have arisen for speeding up a so-called reprint function (or multiple-copy printing) of holding a print job input once and printing part or all of the print job again in an image processing apparatus such as a page printer which analyzes an externally input print job to generate and output the image.
As a conventional technique for multiple-copy printing or high-speed printing, a generated page image (bitmap image) is spooled together with its page number in an external storage device. This page image is reused in second and subsequent output processes, which increases the reprinting speed without any labor of analyzing print data.
An advanced reprint function is also desired to enable outputting data again in a changed printing environment such that not only the same print result is output at a high speed, but also only part of a print job is printed midway, pages are printed in a reverse output order, pages are output at random, or pages which have been output by double-sided printing are printed by single-sided printing in reprinting.
A conventional page printer or the like is so constituted as to receive print data in a PDL (Page Description Language) format and generate a bitmap image representing a page content in accordance with the PDL analysis result. A general PDL is formed from various picture description commands such as a character print command and line drawing command, drawing commands such as an image drawing command, and various commands such as designation of a drawing logic or clipping area, a print position moving command, and a macro command of grouping a plurality of commands, storing them, and invoking them.
Further, the PDL generally includes commands for setting various printing environments. That is, the PDL includes various printing parameters for designating the line width, line type, line end shape processing method, font type, size, decoration (bold/italic), enlargement/reduction, rotational angle, drawing logic (AND or OR), and clipping area. When the image processing apparatus processes a line drawing command, character print command, or the like, an image is drawn in accordance with the contents of the current printing environment. Various printing environments keep setting contents valid until setting is executed again or a reset command or the like is received once setting is done. Hence, the current printing environment is also called a current graphic state. This arrangement eliminates repetition of the same setting, reduces the print data size, and realizes efficient PDL analysis processing. Some current graphic states automatically return to default values every time a page to be printed is changed. However, general current graphic states are kept valid between pages. It is inconvenient that the printing environment returns to default values every time the page changes in, e.g., a print mode in which text data is received, the print position automatically shifts along with character printing, and line feed and page feed are automatically done to print data.
As described above, a conventional page printer or the like which processes PDL data assumes analysis of PDL data sequentially from the start of a print job.
However, the prior art suffers the following problem.
More specifically, a bitmap image representing the content of one generated page is reused in multiple-copy printing or reprinting, and the conventional image processing apparatus cannot be applied to reprinting of different page contents. For example, when a print job by double-sided printing with a set binding width is reprinted by single-sided printing, the image offset direction changes between the obverse and the reverse. Even if designations for the binding width and binding direction do not change, a bitmap image generated for printing on the reverse cannot be printed on the obverse.
In this way, a generated image cannot be reused in various cases such as a change of the print resolution, change from color printing to monochrome printing, change of the binding width, binding direction, or offset amount, and change from printing of one page to printing of a plurality of pages.
As described above, it is difficult to reprint data by using a bitmap image upon a change in printing environment that may influence the content of a finally generated bitmap image.
To perform multiple-copy printing or reprinting without reusing any bitmap image, a print job (PDL data) is spooled, and a page image to be reanalyzed is generated. Since PDL data is reanalyzed in a new printing environment, this arrangement can cope with reprinting after changing various printing environments, but poses the following problem.
More specifically, in the conventional PDL, various printing environments can be inherited between pages. To determine a current graphic state at the start of analyzing an arbitrary page, contents set before the page must be grasped. Data analysis and environmental setting must be performed sequentially from the start of a print job including a page not subjected to actual printing even when pages are printed from the middle of a print job, or, e.g., only odd-numbered pages are partially printed. This is because the break position between pages (form feed command in a page printer or the like) must be distinguished from a binary code in image data or compressed data in order to identify the break position. It does not suffice to check only whether the break position coincides with the form feed code.
From this, when the printing environment is changed in multiple-copy printing or reprinting in an image processing apparatus having the PDL, it is difficult to increase the printing speed even when reprinting only an arbitrary page and subsequent pages within a print job or reprinting only some pages. Because of the same reason, reprinting in a reverse page order or reprinting in a changed page order cannot be efficiently processed.
For example, it is difficult to reprint data by designating book printing (dual page binding) for a print job assigned multiple-page printing in the first printing operation. The page orders of general 2-page printing and book printing will be explained with reference to FIGS. 20A and 20B. FIG. 20A represents a print job when general 2-page printing is done on two sheet surfaces, and FIG. 20B represents book printing. In FIG. 20A, pages 1 and 2, pages 3 and 4, . . . , and pages 11 and 12 are respectively printed on the same sheet surfaces. In facedown discharge, the sheets are discharged in an order of A, B, and C shown on the right side of FIG. 20A. For this printing, pages in the print job must be arranged in 1, 2, 3, 4, . . . , 11, and 12. For book printing, as shown in FIG. 20B, pages must be printed and discharged in an order of pages 6 and 7, pages 5 and 8, . . . , pages 2 and 11, and pages 1 and 12. Reprinting cannot utilize a generated bitmap image, and PDL data must be reanalyzed by reordering pages.